package com.yuanrui.practice.server.service;

import com.yuanrui.practice.api.common.PageResult;
import com.yuanrui.practice.api.req.GetPracticeSubjectReq;
import com.yuanrui.practice.api.req.GetPracticeSubjectsReq;
import com.yuanrui.practice.api.req.GetPreSetReq;
import com.yuanrui.practice.api.req.SubmitPracticeDetailReq;
import com.yuanrui.practice.api.vo.PracticeSetVO;
import com.yuanrui.practice.api.vo.PracticeSubjectListVO;
import com.yuanrui.practice.api.vo.PracticeSubjectVO;
import com.yuanrui.practice.api.vo.SpecialPracticeVO;
import com.yuanrui.practice.server.entity.dto.PracticeSetDTO;
import com.yuanrui.practice.server.entity.dto.PracticeSubjectDTO;

import java.util.List;

public interface PracticeSetService {

    /**
     * 获取专项练习内容
     * @return 专项练习内容
     */
    List<SpecialPracticeVO> getSpecialPracticeContent();

    /**
     * 添加练习题
     * @param dto 练习题dto
     * @return 练习题vo
     */
    PracticeSetVO addPractice(PracticeSubjectDTO dto);

    /**
     * 获取练习题目
     * @param req 获取练习题目请求
     * @return 练习题目列表
     */
    PracticeSubjectListVO getSubjects(GetPracticeSubjectsReq req);

    /**
     * 获取练习题
     * @param practiceSubjectDTO 获取练习题请求
     * @return 练习题
     */
    PracticeSubjectVO getPracticeSubject(PracticeSubjectDTO practiceSubjectDTO);

    PageResult<PracticeSetVO> getPreSetContent(PracticeSetDTO dto);
}
